# Domain Model

## 📕 Articles

- [Always-Valid Domain Model](https://enterprisecraftsmanship.com/posts/always-valid-domain-model/) 
- [Domain Model Encapsulation and PI with Entity Framework 2.2](http://www.kamilgrzybek.com/design/domain-model-encapsulation-and-pi-with-entity-framework-2-2/) 
- [Attributes of Clean Domain Model](http://www.kamilgrzybek.com/design/clean-domain-model-attributes/) 
- [Are CQRS commands part of the domain model?](https://enterprisecraftsmanship.com/2019/01/31/cqrs-commands-part-domain-model/) 
- [Domain model purity vs. domain model completeness](https://enterprisecraftsmanship.com/posts/domain-model-purity-completeness/)
- [Design validations in the domain model layer](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations) 
- [Seedwork (reusable base classes and interfaces for your domain model)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/seedwork-domain-model-base-classes-interfaces) 
- [Implement a microservice domain model with .NET](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/net-core-microservice-domain-model) 
- [Domain Command Patterns - Validation](https://jimmybogard.com/domain-command-patterns-validation/) 
- [Domain Command Patterns - Handlers](https://jimmybogard.com/domain-command-patterns-handlers/)
- [Attributes of Clean Domain Model](https://www.kamilgrzybek.com/design/clean-domain-model-attributes/)
- [Domain Model Encapsulation and PI with Entity Framework 2.2](https://www.kamilgrzybek.com/design/domain-model-encapsulation-and-pi-with-entity-framework-2-2/)
- [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/)
- [Persistence model and domain anemia](https://lostechies.com/blogs/jimmy_bogard/archive/2009/12/03/persistence-model-and-domain-anemia.aspx)
- [The Anemic Domain Model Pattern](http://codebetter.com/gregyoung/2009/07/15/the-anemic-domain-model-pattern/)
- [Strengthening your domain: Aggregate Construction](https://lostechies.com/jimmybogard/2010/02/24/strengthening-your-domain-aggregate-construction/)
- [How to create fully encapsulated Domain Models](https://udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/)
- [Strategic DDD — Distilling the problem domain](https://afedyanin.wordpress.com/2016/05/17/distilling-the-problem-domain/)
- [Strategic DDD — Focusing on the Core Domain](https://afedyanin.wordpress.com/2016/05/18/focusing-on-the-core-domain/)
- [How to know if your Domain model is properly isolated?](https://enterprisecraftsmanship.com/posts/how-to-know-if-your-domain-model-is-properly-isolated/)
- [Domain model isolation](https://enterprisecraftsmanship.com/posts/domain-model-isolation/)
- [Strengthening your domain: Encapsulating operations](https://lostechies.com/jimmybogard/2010/03/24/strengthening-your-domain-encapsulating-operations/)
- [How to know if your Domain model is properly isolated?](https://enterprisecraftsmanship.com/posts/immutable-architecture/)
- [Domain services vs Application services](https://enterprisecraftsmanship.com/posts/domain-vs-application-services/)
- [What is domain logic?](https://enterprisecraftsmanship.com/2016/08/25/what-is-domain-logic/)
- [Domain model purity and lazy loading](https://enterprisecraftsmanship.com/posts/domain-model-purity-lazy-loading/)
- [Change Tracking while doing DDD](https://www.ledjonbehluli.com/posts/change_tracking_ddd/)
- [Referencing external libraries from the domain model](https://www.getdrip.com/deliveries/owp2b8gphp8iwhi66vtj?view_in_browser=true&__s=fk6miphh1sspz3nnxtpu)
- [Having the domain model separated from the persistence model](https://enterprisecraftsmanship.com/posts/having-the-domain-model-separate-from-the-persistence-model/)
- [EF Core 2.1 vs NHibernate 5.1: DDD perspective](https://enterprisecraftsmanship.com/posts/ef-core-vs-nhibernate-ddd-perspective/)
- [Link to an aggregate: reference or Id?](https://enterprisecraftsmanship.com/2016/03/08/link-to-an-aggregate-reference-or-id/)
- [Entities, Value Objects, Aggregates and Roots](https://lostechies.com/jimmybogard/2008/05/21/entities-value-objects-aggregates-and-roots/)
- [Using Factory method instead of Constuctor](https://github.com/kgrzybek/modular-monolith-with-ddd/discussions/214)
- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/)
- [Don’t Create Aggregate Roots](https://udidahan.com/2009/06/29/dont-create-aggregate-roots/)
- [Practical DDD in Golang: Entity](https://levelup.gitconnected.com/practical-ddd-in-golang-entity-40d32bdad2a3)
- [Avoid Exposing Collections Directly as Properties](https://ardalis.com/avoid-collections-as-properties/?utm_sq=grcpqjyka3)
- [Design a No Duplicates Rule in your Domain Model?](https://ardalis.com/design-no-duplicates-rule-in-domain-model/?utm_sq=gz8joz8bw5)
- [Domain Modeling Heuristics #1: I See Users Everywhere!](https://www.jamesmichaelhickey.com/i-see-users-everywhere/)
- [Entity Best Practices & Conventions - ABP](https://docs.abp.io/en/abp/latest/Best-Practices/Entities)
- [Entities - ABP](https://docs.abp.io/en/abp/latest/Entities)
- [Aggregate pattern in Domain-Driven Design](https://medium.com/eventuous/aggregate-pattern-in-domain-driven-design-7ad823475099)
## 📺 Videos
- [AVOID Entity Services by Focusing on Capabilities](https://www.youtube.com/watch?v=2gOOstEI4vU) 
- [ALWAYS Valid Domain Model](https://www.youtube.com/watch?v=JZetlRXdYeI)
- [Domain Logic: Where does it go?](https://www.youtube.com/watch?v=PrJIMTZsbDw)
- [Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019](https://www.youtube.com/watch?v=2JB1_e5wZmU)
